const { Cars } = require('../models/cars');
const {users}=require('../models/users');

//获取车辆列表
async function getCarsList(req,res,next){

  const {pageSize,pageNumber}=req.body
  try {
    const data=await Cars.find().populate("ownerId")
    // console.log(data);
    res.send({ code: 1, data:data});
  } catch (error) {
    next(error)
  }
}

//获取车辆信息
async function carInform(req,res,next){
  const {_id}=req.body;
  try {
    const data=await Cars.findById({_id}).populate("ownerId")
    res.send({code:1,data:data})
  } catch (error) {
    next(error)
  }
}

async function changeCarStatus(req,res,next){
const {_id,disable}=req.body;
  try {
    const data=await Cars.findByIdAndUpdate({_id},{disable}).populate("ownerId");
    res.send({code:1,data:data})
  } catch (error) {
    next(error)
  }
}
//获取车辆柱状图的数据
async function getAllCar(req, res,next) {
  try {
      // count: { $sum: 1 }类似于计算数字，_id必须， $match//条件筛选关键词，$group：{}内的是分组条件
      // {$sort://排序关键词 {count:-1//排序规则}}]);
      //aggregate: 统计和计数
      const data1 = await Cars.aggregate([
          { $match: { "onTime": {$gte:"2020年1月1日",$lte:"2020年3月31日" } } },
          { $group: { _id: { kind: "$onTime" }, count: { $sum: 1 } } },
      ]);
      const data2 = await Cars.aggregate([
          { $match: { "onTime": {$gte:"2020年4月1日",$lte:"2020年6月30日" } } },
          { $group: { _id: { kind: "$onTime" }, count: { $sum: 1 } } },
      ]);
      const data3 = await Cars.aggregate([
          { $match: { "onTime": {$gte:"2020年7月1月",$lte:"2020年9月30日" } } },
          { $group: { _id: { kind: "$onTime" }, count: { $sum: 1 } } },
      ]);
      const data4 = await Cars.aggregate([
          { $match: { "onTime": {$gte:"2020年10月1日",$lte:"2020年12月31日" } } },
          { $group: { _id: { kind: "$onTime" }, count: { $sum: 1 } } },
      ]);
      let msg = {};
      data1.forEach(item => {
          const key = item._id.kind;
          msg[key] = item.count
      });
      data2.forEach(item => {
          const key = item._id.kind;
          msg[key] = item.count
      })
      data3.forEach(item => {
          const key = item._id.kind;
          msg[key] = item.count
      })
      data4.forEach(item => {
          const key = item._id.kind;
          msg[key] = item.count
      })
      const data = {
          "第一季度":data1.length,
          "第二季度":data2.length,
          "第三季度":data3.length,
          "第四季度":data4.length,
      }
      // console.log(data1,data2,data3,data4);
      res.send({
          code: 1,
          data
      })
  } catch (error) {
      console.log("err", error);
      next(error);
  }
}

module.exports = {
  getCarsList,carInform,changeCarStatus,getAllCar
};

